package com.flower.service;

import com.flower.domain.dto.LoginDto;
import com.flower.domain.dto.buyer.PageBuyerDto;
import com.flower.domain.entity.Buyer;
import com.baomidou.mybatisplus.extension.service.IService;
import com.flower.domain.vo.PageVO;
import com.flower.domain.dto.buyer.BuyerUpdateDto;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.flower.domain.vo.admin.BuyerVO;

/**
* @author 86178
* @description 针对表【buyer】的数据库操作Service
* @createDate 2025-02-17 20:54:03
*/
public interface BuyerService extends IService<Buyer> {

    Buyer login(LoginDto loginDto);


    PageVO<Buyer> pageList(PageBuyerDto pageBuyerDto);
    
    /**
     * 分页查询带有店铺信息的买家列表
     * @param pageBuyerDto 分页查询参数
     * @return 分页结果
     */
    PageVO<BuyerVO> pageListWithShopInfo(PageBuyerDto pageBuyerDto);

    Buyer findBuyerByEmail(String email);

    Buyer getUserInfo();

    void updateUserInfo(Buyer buyer);

    Page<Buyer> getBuyerList(String keyword, Integer page, Integer size);

    void addBuyer(Buyer buyer);

    void updateBuyer(Buyer buyer);

    void deleteBuyer(Integer id);

    Buyer getBuyerById(Integer id);

    /**
     * 检查用户名是否已存在
     * @param username 用户名
     * @return 是否存在
     */
    boolean isUsernameExists(String username);
    
    /**
     * 检查用户名是否已存在（排除指定ID的用户）
     * @param username 用户名
     * @param excludeId 要排除的用户ID
     * @return 是否存在
     */
    boolean isUsernameExists(String username, Integer excludeId);
}
